montaque

小碗喝酒,小口吃肉

博客园 首页 新随笔 联系 订阅 管理

如何用写一个bat脚本返回昨天的年月日,其实用bat写很麻烦,你要写一个For 来拿到Date的年月日,然后再写一个小程序来推算昨天的年月日。其实要使能直接执行.net代码多好,.net Datetime.Now.AddDays(-1) 就是昨天了

 

其实Powershell就帮你回答这个问题,可以利用.net 类库丰富的功能支持,比如操作XML,文件IO,网络等特性。当然也可也自己来写一个类库,来实现复杂的脚本。

 

这时候,你打开powershell,敲入 [DateTime]::Now

则返回当前的日期,如果看看Now有哪些方法和属性

[DateTime]::Now | get-member

image

当然你要计算你长了多大的话,[DateTime]::Now-[DateTime]("yourbirthday")就返回你的年龄了,呵呵。我通常用这个来计算一下我baby几个月几天了。

 

powershell允许你定义一个变量,针对FTP下载的问题。你首先生成你要下载的文件名,然后整理到一个String,发给FTP就可以了。

以下是一个简单的例子。

$yersterday=[DateTime]::Now.AddDays(-1);
$yyyy=$yersterday.Year;
$mm=$yersterday.Month;
$day=$yersterday.Day;
$file1=[String]::Format("90193698_{0}{1:00}{2:00}_{0}{1:00}{2:00}.zip",$yyyy,$mm,$day); 

$cmd = "open yourftpserver
user username password

binary
get $file1"

$cmd | ftp -i -n

 

把他另存为一个PS1文件。 如果让他自动运行的话,写一个windows schedule task "powershell fullpathoftheps1"

默认poweshell有一个执行策略,不运行执行伟签名的文件。你可以改为

set-ExecutionPolicy RemoteSigned

或者直接改一下注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

image

 

或许这是个PS很好的一个实用例子吧。

posted on 2008-06-10 02:27  montaque  阅读(4702)  评论(5编辑  收藏  举报